Перейти к основному содержимому

6.2. Метрики и мониторинг

Мониторинг и диагностика Apache Ozone: Метрики и мониторинг

Apache Ozone предоставляет встроенные метрики для мониторинга состояния кластера, производительности, использования ресурсов и доступности данных. Эти метрики помогают администраторам отслеживать работу системы в реальном времени и оперативно выявлять проблемы. Для визуализации метрик Ozone можно интегрировать с системами мониторинга, такими как Prometheus и Grafana.


1. Основные категории метрик Ozone

Метрики в Apache Ozone делятся на несколько категорий в зависимости от компонента:

  • Ozone Manager (OM): Метрики для отслеживания состояния томов (volumes), бакетов (buckets), ключей (keys), производительности операций с метаданными, латентности и ошибок.
  • Storage Container Manager (SCM): Метрики для мониторинга контейнеров, состояния репликации, heartbeat-сообщений от DataNodes, распределения данных и использования ресурсов.
  • DataNode: Метрики по вводу/выводу, состоянию дисков, объёму занятого и свободного дискового пространства.
  • S3 Gateway (S3G): Метрики, связанные с запросами через S3 API, производительностью операций загрузки и чтения объектов.
  • Recon: Метрики для анализа состояния кластера, консистентности данных, а также метрики использования CPU и памяти для Recon.

2. Сбор метрик с помощью Prometheus

Apache Ozone предоставляет поддержку Prometheus для сбора метрик. Prometheus использует HTTP-эндпоинт /metrics, на котором Ozone публикует свои метрики.

Шаг 1: Настройка эндпоинтов для метрик

Для каждого компонента Ozone укажите эндпоинт для метрик в ozone-site.xml.

<configuration>
<!-- Метрики Ozone Manager -->
<property>
<name>ozone.om.http-address</name>
<value>0.0.0.0:9878</value>
</property>
<property>
<name>ozone.om.metrics.http-address</name>
<value>0.0.0.0:9880</value>
</property>

<!-- Метрики SCM -->
<property>
<name>ozone.scm.http-address</name>
<value>0.0.0.0:9861</value>
</property>
<property>
<name>ozone.scm.metrics.http-address</name>
<value>0.0.0.0:9881</value>
</property>

<!-- Метрики DataNode -->
<property>
<name>ozone.datanode.http-address</name>
<value>0.0.0.0:9858</value>
</property>
<property>
<name>ozone.datanode.metrics.http-address</name>
<value>0.0.0.0:9882</value>
</property>

<!-- Метрики S3 Gateway -->
<property>
<name>ozone.s3g.http-address</name>
<value>0.0.0.0:9874</value>
</property>
<property>
<name>ozone.s3g.metrics.http-address</name>
<value>0.0.0.0:9883</value>
</property>
</configuration>

Шаг 2: Настройка Prometheus для сбора метрик

Добавьте настройки эндпоинтов Ozone в конфигурационный файл Prometheus prometheus.yml:

scrape_configs:
- job_name: 'ozone_om'
metrics_path: '/metrics'
static_configs:
- targets: ['om1.example.com:9880']

- job_name: 'ozone_scm'
metrics_path: '/metrics'
static_configs:
- targets: ['scm1.example.com:9881']

- job_name: 'ozone_datanode'
metrics_path: '/metrics'
static_configs:
- targets: ['datanode1.example.com:9882', 'datanode2.example.com:9882']

- job_name: 'ozone_s3g'
metrics_path: '/metrics'
static_configs:
- targets: ['s3g.example.com:9883']

Шаг 3: Запуск Prometheus

Перезапустите Prometheus для применения новых настроек:

systemctl restart prometheus

3. Просмотр метрик в Prometheus

После настройки метрики Apache Ozone будут доступны в интерфейсе Prometheus. Вы можете выполнять запросы на основе метрик для анализа состояния кластера и получения данных о производительности.

Примеры метрик, которые можно мониторить:

  • ozone_om_volume_count: Количество томов в Ozone Manager.
  • ozone_scm_container_state: Состояние контейнеров в SCM.
  • ozone_datanode_used_space: Использованное дисковое пространство на DataNode.
  • ozone_s3g_request_latency: Латентность запросов через S3 Gateway.

4. Визуализация метрик в Grafana

Для более удобной визуализации метрик Prometheus можно интегрировать с Grafana. Grafana позволяет создавать дашборды с графиками и метриками, что облегчает мониторинг состояния Ozone в режиме реального времени.

Шаг 1: Настройка Grafana для работы с Prometheus

  1. Запустите Grafana и войдите в интерфейс управления.
  2. Перейдите в Configuration > Data Sources и добавьте новый источник данных Prometheus.
  3. Введите URL Prometheus, например http://localhost:9090, и сохраните источник данных.

Шаг 2: Создание дашбордов в Grafana

  1. Создайте новый дашборд и добавьте график.
  2. В поле Query укажите метрику Prometheus, которую вы хотите отобразить, например:
    ozone_datanode_used_space
  3. Настройте визуализацию для удобного отображения метрик (например, в виде линии или гистограммы).

Шаг 3: Использование готовых дашбордов

Для Apache Ozone доступны готовые дашборды Grafana, которые можно импортировать через интерфейс Grafana. Воспользуйтесь шаблонами из сообщества или создайте собственные дашборды с метриками Ozone.


5. Основные метрики для мониторинга состояния кластера

Некоторые из наиболее важных метрик для мониторинга Apache Ozone:

  • Ozone Manager:

    • ozone_om_volume_count: Количество томов.
    • ozone_om_bucket_count: Количество бакетов.
    • ozone_om_key_count: Количество ключей.
    • ozone_om_request_latency: Средняя задержка обработки запросов OM.
  • Storage Container Manager (SCM):

    • ozone_scm_container_count: Общее количество контейнеров.
    • ozone_scm_pipeline_count: Количество активных потоков данных (pipelines).
    • ozone_scm_datanode_heartbeat: Статус heartbeat-сообщений от DataNodes.
    • ozone_scm_replica_count: Количество реплик контейнеров.
  • DataNode:

    • ozone_datanode_used_space: Объём занятого дискового пространства.
    • ozone_datanode_available_space: Объём доступного дискового пространства.
    • ozone_datanode_container_count: Количество контейнеров на узле.
  • S3 Gateway:

    • ozone_s3g_request_count: Общее количество запросов.
    • ozone_s3g_request_latency: Средняя задержка запросов.
    • ozone_s3g_failed_requests: Количество неудачных запросов.

6. Использование метрик для диагностики и анализа

Метрики могут помочь выявить проблемы с производительностью и доступностью:

  • Проблемы с производительностью: Высокая задержка обработки запросов OM или SCM может указывать на проблемы с производительностью системы.
  • Недостаток дискового пространства: Если метрика ozone_datanode_available_space указывает на снижение доступного пространства, следует проверить диски узлов.
  • Проблемы с репликацией: Если количество активных реплик (ozone_scm_replica_count) снижается, это может указывать на потерю данных или проблемы с DataNodes.
  • Ошибки и неудачные запросы S3 Gateway: Высокий уровень ошибок в S3 Gateway (ozone_s3g_failed_requests) может указывать на проблемы с сетью или доступом.

Итог

Метрики и мониторинг Apache Ozone играют важную роль в управлении кластером, обеспечивая прозрачность работы системы и позволяя своевременно выявлять проблемы. Сбор метрик через Prometheus и их визуализация в Grafana предоставляют администраторам мощные инструменты для анализа состояния и